package org.jeecg.modules.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @Description: 短信
 * @Author: jeecg-boot
 * @Date:   2021-02-04
 * @Version: V1.0
 */
@Data
@TableName("sys_sms")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="sys_sms对象", description="短信")
public class SysSms extends  BaseEntity {

	/**ID*/
	@TableId(type = IdType.ID_WORKER_STR)
	@ApiModelProperty(value = "ID")
	private String id;
	/**物业公司ID*/
	@Excel(name = "物业公司ID", width = 15)
	@ApiModelProperty(value = "物业公司ID")
	private String tenantId;
	/**机构id*/
	@Excel(name = "机构id", width = 15)
	@ApiModelProperty(value = "机构id")
	private String departId;
	/**项目id*/
	@Excel(name = "项目id", width = 15)
	@ApiModelProperty(value = "项目id")
	private String projectId;
	/**楼栋id*/
	@Excel(name = "楼栋id", width = 15)
	@ApiModelProperty(value = "楼栋id")
	private String floorId;
	/**房间*/
	@Excel(name = "房间", width = 15)
	@ApiModelProperty(value = "房间")
	private String roomId;
	/**业务ID*/
	@Excel(name = "业务ID", width = 15)
	@ApiModelProperty(value = "业务ID")
	private String businessId;
	/**业务模块*/
	@Excel(name = "业务模块", width = 15)
	@ApiModelProperty(value = "业务模块")
	@Dict(dicCode = "sys_business")
	private String businessType;
	/**短信等级*/
	@Excel(name = "短信等级", width = 15)
	@ApiModelProperty(value = "短信等级")
	private Integer smsLevel;
	/**消息标题*/
	@Excel(name = "消息标题", width = 15)
	@ApiModelProperty(value = "消息标题")
	private String esTitle;
	/**发送方式：1短信 2邮件 3微信 4站内推送*/
	@Excel(name = "发送方式：1短信 2邮件 3微信 4站内推送", width = 15)
	@ApiModelProperty(value = "发送方式：1短信 2邮件 3微信 4站内推送")
	private Integer esType;
	/**接收人*/
	@Excel(name = "接收人", width = 15)
	@ApiModelProperty(value = "接收人")
	private String esReceiver;
	/**发送所需参数Json格式*/
	@Excel(name = "发送所需参数Json格式", width = 15)
	@ApiModelProperty(value = "发送所需参数Json格式")
	private String esParam;
	/**推送内容*/
	@Excel(name = "推送内容", width = 15)
	@ApiModelProperty(value = "推送内容")
	private Object esContent;
	/**推送时间*/
	@Excel(name = "推送时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "推送时间")
	private Date esSendTime;
	/**推送状态 0未推送 1推送成功 2推送失败 -1失败不再发送*/
	@Excel(name = "推送状态 0未推送 1推送成功 2推送失败 -1失败不再发送", width = 15)
	@ApiModelProperty(value = "推送状态 0未推送 1推送成功 2推送失败 -1失败不再发送")
	private String esSendStatus;
	/**发送次数 超过5次不再发送*/
	@Excel(name = "发送次数 超过5次不再发送", width = 15)
	@ApiModelProperty(value = "发送次数 超过5次不再发送")
	private Integer esSendNum;
	/**推送失败原因*/
	@Excel(name = "推送失败原因", width = 15)
	@ApiModelProperty(value = "推送失败原因")
	private String esResult;
	/**回传的唯一标识*/
	@Excel(name = "回传的唯一标识", width = 15)
	@ApiModelProperty(value = "回传的唯一标识")
	private String esBizId;
	/**是否计费*/
	@Excel(name = "是否计费", width = 15)
	@ApiModelProperty(value = "是否计费")
	private Integer isBilling;
	/**单价*/
	@Excel(name = "单价", width = 15)
	@ApiModelProperty(value = "单价")
	private String price;
	/**备注*/
	@Excel(name = "备注", width = 15)
	@ApiModelProperty(value = "备注")
	private String remark;
	/**创建人登录名称*/
	@Excel(name = "创建人登录名称", width = 15)
	@ApiModelProperty(value = "创建人登录名称")
	private String createBy;
	/**创建日期*/
	@Excel(name = "创建日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "创建日期")
	private Date createTime;
	/**更新人登录名称*/
	@Excel(name = "更新人登录名称", width = 15)
	@ApiModelProperty(value = "更新人登录名称")
	private String updateBy;
	/**更新日期*/
	@Excel(name = "更新日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "更新日期")
	private Date updateTime;
	/**delFlag*/
	@Excel(name = "delFlag", width = 15)
	@ApiModelProperty(value = "delFlag")
	private Integer delFlag;
	/**
	 * 短信金额
	 */
	private String amount;
	private String smsRules;
	@TableField(exist = false)
	private String fromDate;
	@TableField(exist = false)
	private String toDate;
}
